﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BUGCOME.Model.File
{
    /// <summary>
    /// 分片文件信息（记录单个分片的详细数据）
    /// </summary>
    [SugarTable("multipartUploadChunk", "分片文件表")]
    [Tenant("5")]
    public class MultipartUploadChunk
    {
        /// <summary>
        /// 分片ID（自增主键，数据库层面唯一标识）
        /// </summary>
        public long Id { get; set; }

        /// <summary>
        /// 关联的分片上传任务ID（与MultipartUploadMeta的UploadId对应）
        /// 用于标识当前分片属于哪个上传任务
        /// </summary>
        public string UploadId { get; set; }

        /// <summary>
        /// 分片序号（从0开始，用于合并时按顺序拼接）
        /// 例如：0、1、2...n 表示第1、2、3...n+1个分片
        /// </summary>
        public int ChunkIndex { get; set; }

        /// <summary>
        /// 分片存储路径（本地文件路径或云存储的ObjectKey）
        /// 例如："chunks/xxxx-xxxx/0" 或 "multipart-upload/xxxx/1"
        /// </summary>
        public string ChunkPath { get; set; }

        /// <summary>
        /// 分片大小（字节，用于校验分片是否完整上传）
        /// </summary>
        public long ChunkSize { get; set; }

        /// <summary>
        /// 分片上传时间（用于跟踪分片上传进度）
        /// </summary>
        public DateTime CreateTime { get; set; }

        // （可选扩展）可添加字段：
        // public string ChunkHash { get; set; } // 分片的MD5哈希（校验分片完整性）
        // public int Status { get; set; } // 分片状态（0-上传中，1-上传完成）
    }
}
